package Controlador;

import Dao.DaoUnidadT;
import Dao.DaoViaje;
import Modelo.Listas;
import Modelo.UnidadT;
import Modelo.Viaje;
import Reportes.ReporteAsigVehiculos;
import Vista.Mensajes;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ControladorReporteAsigVehiculo implements ActionListener {

    private ReporteAsigVehiculos AsigVeh;

    public ControladorReporteAsigVehiculo() throws SQLException {
        AsigVeh = new ReporteAsigVehiculos();
        AsigVeh.agregarListener(this);
        AsigVeh.setVisible(true);
        cargarComboP();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(AsigVeh.getCmbPlacas())) {
            String cadena;
            cadena = AsigVeh.getCmbPlacas().getSelectedItem().toString();
            if (cadena.equals("Seleccione:")) {
                limpiar();
                limpiarTabla();
            }
                limpiarTabla();
            try {
                Llenar();
            } catch (SQLException ex) {
                Logger.getLogger(ControladorReporteAsigVehiculo.class.getName()).log(Level.SEVERE, null, ex);
            }
            
        }
    }
    
    private void cargarComboP() throws SQLException
    {
        String placa;
        ResultSet rgUnidad;
        DaoUnidadT daoUnidad = new DaoUnidadT();
        rgUnidad = daoUnidad.ConsultarUnidadT();
        while(rgUnidad.next())
        {
            placa = rgUnidad.getString("placa");
            AsigVeh.getCmbPlacas().addItem(placa);
        }
    }       
    private void Llenar() throws SQLException
    {
        String placa,tipo, dest, soc, coop, cap, fecha,numv, chofer;
        int pasj, fila = 0;
        ResultSet rgUnidad;
        ResultSet rgViaje;
        DaoUnidadT daoUnidad = new DaoUnidadT();
        DaoViaje daoViaje = new DaoViaje();
        rgViaje = daoViaje.ConsultarViaje();
        rgUnidad = daoUnidad.ConsultarUnidadT();
        placa = AsigVeh.getCmbPlacas().getSelectedItem().toString();
        while(rgUnidad.next())
        {
            if(rgUnidad.getString("placa").equals(placa))
            {
                tipo = rgUnidad.getString("descripcion");
                cap = rgUnidad.getString("capacidad");
                soc = rgUnidad.getString("cedulasocio");
                coop = rgUnidad.getString("codigocoop");
                AsigVeh.getTxtTipoVehi().setText(tipo);
                AsigVeh.getTxtCapacidad().setText(cap);
                AsigVeh.getTxtSocio().setText(soc);
                AsigVeh.getTxtCooperativa().setText(coop);
            }
        }
        while(rgViaje.next())
        {
            if(rgViaje.getString("placavehiculo").equals(placa))
            {
                numv = rgViaje.getString("codigoviaje");
                fecha = rgViaje.getString("fechasalida");
                dest = rgViaje.getString("destino");
                chofer= rgViaje.getString("cedulaempleado");
                pasj = rgViaje.getShort(12);
                AsigVeh.getjTableAsignacionesV().setValueAt(numv, fila, 0);
                AsigVeh.getjTableAsignacionesV().setValueAt(fecha, fila, 1);
                AsigVeh.getjTableAsignacionesV().setValueAt(dest, fila, 2);
                AsigVeh.getjTableAsignacionesV().setValueAt(chofer, fila, 3);
                AsigVeh.getjTableAsignacionesV().setValueAt(pasj, fila, 4);
                fila++;
            }
        }
    }


    private void limpiar() {
        AsigVeh.getTxtTipoVehi().setText("");
        AsigVeh.getTxtCapacidad().setText("");
        AsigVeh.getTxtSocio().setText("");
        AsigVeh.getTxtCooperativa().setText("");
    }
    
    private void limpiarTabla()
    {
        for (int i = 0; i < AsigVeh.getjTableAsignacionesV().getRowCount(); i++) 
        {
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 0);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 1);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 2);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 3);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 4);
        }
    }
}
